This invention relates to a method for extending the types of files that can be accessed by a program running on a computer.
Computers are controlled by software, known as the operating system, which can access and control those types of files whose characteristics have been pre-defined for the operating system. For example, definitions will exist concerning the characteristics of how files are named, how they are located on storage devices, how they are organized in blocks or records, and how they can be read, written or otherwise manipulated. A program running on the computer will use the services of the operating system to access these standard files stored on storage devices attached to the computer.
A particular operating system will only know a particular set of file characteristics, and therefore can access only file types using those file characteristics. For example, Table I shows the file characteristics defined for the IEEE Standard 1103.1-1990 POSIX operating system, an operating system related to the UNIX operating system (UNIX is a Registered Trademark of AT&T Information Systems). While this operating system is perfectly functional when dealing with its own file types, it is limited in accessing more complex file types having additional file characteristics.
For example, Table II shows the file characteristics defined for the ISO 9660 file format, which is commonly used for CD-ROM media. The file characteristics defined for ISO 9660 provide a wealth of information regarding the source of the file data, where and when it was prepared, and other valuable descriptive information, most of which have not been defined to and cannot be accessed by the POSIX operating system. For example, if it is desired to use a POSIX operating system to read an ISO 9660 media, some of the ISO 9660 file characteristics, such as "size" or "last modification date," can be easily mapped to characteristics known to the POSIX operating system. Other file characteristics, such as "System Identifier" or "Publisher Identifier," have no correspondence to characteristics known to the POSIX operating system.
To extend an operating system to understand additional file characteristics and therefore additional file types has been a difficult task. It requires the availability of source-language programming code for the operating system. Even if the source-language programming code is available, the modifications can be a time-consuming job requiring a high level of computer programming expertise.
For example, to extend a UNIX operating system to understand additional file characteristics, it is common to have new system calls, traps or "ioctl" system call definitions implemented into the operating system. But, making such changes to the operating system is difficult, and can degrade the reliability of the operating system as unintentioned side effects arise. Sometimes it is preferred to avoid such modifications to reduce on-going maintenance and support requirements.
What is desired is a method of extending the types of files that can be accessed by a program running on a computer without requiring extensive modification to the operating system.